home *** CD-ROM | disk | FTP | other *** search
- opt o+,w-
- output dh2:Dottunnel.o
- IncDir "dh1:Assembler/"
- Include "AMOS/|AMOSPro_Includes.s"
-
- rsreset
- O_DotStep rs.w 1
- O_DotStart rs.w 1
- O_MaxX rs.w 1
- O_MaxY rs.w 1
- O_SizeOf rs.b 0
-
- dottunn lea .base(pc),a2
- move.l (a3)+,d6 ;Stepping Rate
- add.w d6,d6
- move.l (a3)+,d0
- add.w d0,d0
- and.w #$3FF,d0
- move.w d0,O_DotStart(a2) ;Starting Angle
- move.w d0,d7
- move.l ScOnAd(a5),a0
- move.w EcTx(a0),O_MaxX(a2)
- move.w EcTy(a0),O_MaxY(a2)
- move.l (a3)+,d0 ;Bitplane
- add.w d0,d0
- add.w d0,d0
- move.l (a0,d0.w),a1
- move.l (a3)+,d5 ;My
- move.l (a3)+,d4 ;Mx
- movem.l a3-a4,-(sp)
- move.l (a3)+,a0 ;Sinebase
- move.l (a3)+,a4 ;Y-Table
- move.l a0,a3
- .loop move.w (a3,d7.w),d3
- move.w d7,d0
- add.w #$100,d0
- and.w #$3FF,d0
- move.w (a3,d0.w),d2
- add.w d5,d3
- bmi.s .nodot
- add.w d4,d2
- bmi.s .nodot
- cmp.w O_MaxY(a2),d3
- bge.s .nodot
- cmp.w O_MaxX(a2),d2
- bge.s .nodot
- move.w d2,d0
- lsr.w #3,d0
- and.b #7,d2
- not.b d2
- move.l a1,a0
- moveq.l #0,d1
- add.w d3,d3
- move.w (a4,d3.w),d1
- add.l d1,a0
- bset d2,(a0,d0.w)
- .nodot add.w d6,d7
- and.w #$3FF,d7
- cmp.w O_DotStart(a2),d7
- bne.s .loop
- movem.l (sp)+,a3-a4
- rts
-
- .base ds.b O_SizeOf
-